package com.literaryfamily.literaryfamily.service.orders;

import com.literaryfamily.literaryfamily.entity.Audit;
import com.literaryfamily.literaryfamily.entity.BookBorrowOnline;
import com.literaryfamily.literaryfamily.entity.BookSaleOnline;

/**
 * 书籍上架接口(上架指申请可以卖书和借书赚钱)
 *  所有涉及读写的方法都需要抛出 WriteError 数据库读写错误异常(这个是运行时异常,只需要抛出不需要处理)
 *  此接口所有方法均不检查用户身份,应该验证身份后在进行检查
 *  @author 滑稽/因果报应
 */
public interface BookOnlineService {
	/**
	 * 书籍上架 借阅上架号生成规则 bo_yyyy_MM_dd__hh_mm_ss_userId_bookId
	 *
	 * @param bookBorrowOnline 必要的上架信息
	 * @return 审核进行结果或者状态
	 */
	Audit borrowOnline(BookBorrowOnline bookBorrowOnline);

	/**
	 * 取消借阅上架
	 */
	Audit closeBorrowOnline(BookBorrowOnline bookBorrowOnline);

	/**
	 * 书籍上架出售
	 * 买卖上架号生成规则 so_yyyy_MM_dd__hh_mm_ss_userId_bookId
	 * @param bookSaleOnline 申请单
	 * @return 审核状态
	 */
	Audit bookSaleOnline(BookSaleOnline bookSaleOnline);

	/**
	 * 取消书籍上架
	 */
	Audit closeBookSaleOnline(BookSaleOnline bookSaleOnline);
}